<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Boost.MultiIndex Documentation - Index</title>
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="start" href="index.html">
<link rel="next" href="tutorial/index.html">
</head>

<body>
<h1><img src="../../../boost.png" alt="boost.png (6897 bytes)" align=
"middle" width="277" height="86">Boost Multi-index Containers Library</h1>

<div class="prev_link">&nbsp;</div>
<div class="up_link">&nbsp;</div>
<div class="next_link"><a href="tutorial/index.html"><img src="next.gif" alt="tutorial" border="0"><br>
Tutorial
</a></div><br clear="all" style="clear: all;">

<hr>

<p>
The Boost Multi-index Containers Library provides a class template named
<code>multi_index_container</code> which enables the construction of containers
maintaining one or more <i>indices</i> with different sorting and access semantics.
Indices provide interfaces similar to those of STL containers, making using them
familiar. The concept of multi-indexing over the same collection of elements is
borrowed from relational database terminology and allows for the specification of
complex data structures in the spirit of multiply indexed relational tables where
simple sets and maps are not enough. A wide selection of indices is provided,
modeled after analogous STL containers like <code>std::set</code>,
<code>std::list</code> and <code>std::unordered_set</code>.
</p>

<p>
Boost.MultiIndex features additional functionalities, like subobject searching,
range querying, in-place updating of elements and calculation of ranks,
which make it a convenient replacement
for <code>std::set</code> and <code>set::multiset</code> even when no multi-indexing
capabilities are needed.
</p>

<p>
The versatile nature of Boost.MultiIndex allows for the specification of
a wide spectrum of different data structures. The following are possible
examples of use developed in the documentation:
<ul>
  <li><a href="tutorial/basics.html#multiple_sort">Sets with several iteration orders
    and search criteria</a>.</li>
  <li><a href="tutorial/basics.html#list_fast_lookup">Lists with fast lookup</a>
    and/or without duplicates.</li>
  <li><a href="examples.html#example4">Bidirectional maps</a>, i.e. maps
    searchable either for key or value.</li>
  <li><a href="examples.html#example9">MRU (most recently used) lists</a>,
    structures keeping the <i>n</i> last referenced items, beginning with
    the newest ones.</li>
  <li><a href="tutorial/techniques.html#emulate_std_containers">Emulations of
    standard containers</a> taking advantage of the extra functionalities
    provided by Boost.MultiIndex.</li>
</ul>
</p>

<h2>Contents</h2>

<ul>
  <li><a href="tutorial/index.html">Tutorial</a></li>
  <li><a href="reference/index.html">Reference</a></li>
  <li><a href="compiler_specifics.html">Compiler specifics</a></li>
  <li><a href="performance.html">Performance</a></li>
  <li><a href="examples.html">Examples</a></li>
  <li><a href="tests.html">Tests</a></li>
  <li><a href="future_work.html">Future work</a></li>
  <li><a href="release_notes.html">Release notes</a></li>
  <li><a href="acknowledgements.html">Acknowledgements</a></li>
</ul>

<hr>

<div class="prev_link">&nbsp;</div>
<div class="up_link">&nbsp;</div>
<div class="next_link"><a href="tutorial/index.html"><img src="next.gif" alt="tutorial" border="0"><br>
Tutorial
</a></div><br clear="all" style="clear: all;">

<br>

<p>Revised April 19th 2015</p>

<p>&copy; Copyright 2003-2015 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;oz.
Distributed under the Boost Software 
License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt">
LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

</body>
</html>
